<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      //   class Star {}
      //   console.log(typeof Star);

      //   // 类的本质是一个函数 也可以理解为是构造函数的另一种写法
      //   console.log(Star.prototype);
      //   //   类可以通过原型对象添加方法
      //   Star.prototype.sing = function () {
      //     console.log("ggg");
      //   };
      //   var ldh = new Star();
      //   console.log(ldh);
      //   console.log(__proto__ === Star.prototype);

      function Star(name, age) {
        this.name = name;
        this.age = age;
      }

      function fn(a, b) {
        // 函数执行的时候能够访问的变量
        // 形参变量、
        console.log(a, b, this === window, arguments.callee === fn);
      }
      // new Star //
      var ldh = new Star("ldh", 50);
      //   new 做了几件事
      //  1.创建了对象
      //  2.将这个对象.__proto__ 指向了 构造函数的prototype
      //  3.将这个对象中的 this 指向这个对象
      //  4.执行这个函数，并返回这个对象
      console.log(ldh);

      Array.prototype.compute = function (a, b) {
        console.log(a, b);

        return a + b;
      };
      //   var arr = new Array()
      var arr = [1, 3];
      var res = arr.compute(arr[0], arr[1]);
      console.log(res, arr);

      //BOM、DOM、ECMAScript：
      // ECMAScript制定了JavaScript的标准
      //   ES5 、ES6。
    </script>
  </head>
  <body></body>
</html>
